#ifndef FND_GAME_ADAPTER_OBJECT_H
#define FND_GAME_ADAPTER_OBJECT_H
#include "message_manager.h"
#include <boost/noncopyable.hpp>
#include "ltclientshell.h"
class adapter_object : boost::noncopyable {
protected:
    adapter_object(HOBJECT object) :
        m_hobject(object) {}
public:
    virtual ~adapter_object() {} // because just a adpator, so not control memory.
    void on_message(ILTMessage_Read* pMsg) ;
    HOBJECT get_object() { return m_hobject ;}
    void update(float time_inteval) {do_update(time_inteval) ;}
private:
    virtual void do_update(float time_inteval) = 0 ;
private:
    HOBJECT m_hobject ;
protected:
    typedef Utility::message_manager<unsigned int, ILTMessage_Read*> adpater_object_shader_manager_type ;
    adpater_object_shader_manager_type m_shader_updater ;
} ;
#endif
